Перейти к основному содержимому

Переменные и функции

Помимо стандартных twig функций, в шаблонах outofbox.ru присутствуют дополнительные.

Подключение медиа-файлов

Неотъемлемой частью любого шаблона являются медиа-файлы: css, js, изображения и т.д. Вы можете выгружать любые необходимые файлы в нужные каталоги.

Для более удобного подключения файлов существует функция asset_url.

<link href="{{ asset_url('css/style.css') }}" rel="stylesheet">

Данная функция автоматически построит путь, по которому доступен файл css/style.css.

То же самое верно и для прочих файлов темы оформления (изображения, шрифты, js и так далее).

Авторизация

is_user_logged_in() – эта функция используется для проверки того, авторизован или нет текущий пользователь.

Пример использования:

{% if is_user_logged_in() %}
Вы авторизованы как {{ app.user.username }}
{% else %}
Пожалуйста, авторизуйтесь
{% endif %}

Генерация ссылок

Общий принцип

Для генерации ссылок используется две функции: path и url. Функции идентичны, за исключением того, что вторая функция всегда генерирует полную ссылку (вместе со схемой, хостом и т.д.)

Пример использования:

<a href="{{ path('homepage') }}">Главная</a> <!-- ссылка на "/" -->
<a href="{{ url('homepage') }}">Главная</a> <!-- ссылка на "http://domain.tld/" -->

Первым аргументом идет всегда тип генерируемой ссылки.

Ссылки также поддерживают параметры. Бывают два типа параметров: параметры пути и query параметры. Синтаксис для всех этих видов параметров одинаков:

{{ path('homepage', { 'param1': 'foo', 'param2': 'bar' }) }}

В том случае, если переменные не являются переменными пути, они будут добавлены в ссылку как query параметры. В нашем конкретном случае, у типа ссылки homepage нет никаких параметров пути, поэтому вышеприведенный код сгенерирует нам ссылку:

/?param1=foo&param2=bar

Макросы OUTOFBOX.RU

Также в комплекте поставляются макросы, которые упрощают работу со ссылками. Для того, чтобы их использовать, надо подключить их в шаблоне

{% import '@resources/Templates/macroses.html.twig' as outofbox %}

Данный блок кода можно вставить в общий файл, от которого наследуются все шаблоны, чтобы макросы были доступны во всех дочерних без явного импорта.

Ссылка на товар

Строит абсолютную или относительную ссылку на товар.

product_url(product, absolute = false, query_params = {})

Аргументы:

НаименованиеОбязательноеЗначение по-умолчаниюОписание
productДаНетОбъект товара
absoluteНетfalseСтроить относительную или абсолютную ссылку
query_paramsНет{}Query параметры

Примеры использования:

{{ outofbox.product_url(product) }} <!-- /products/product-title/123.html -->
{{ outofbox.product_url(product, true) }} <!-- http://domain.tld/products/product-title/123.html -->
{{ outofbox.product_url(product, false, { 'somevar': 'somevalue' }) }} <!-- /products/product-title/123.html? somevar=somevalue -->

Корзина пользователя

Для доступа к данным корзины можно воспользоваться следующими функциями:

НазваниеОписание
cart_total_quantity()Общее количество товаров в корзине
cart_total_price()Общая сумма